//搜索工具栏
Ext.define('configCenter.user.searchRealNameField', {
	extend : 'Ext.ux.form.SearchField',
	alias : 'widget.searchRealNameField',
	emptyText : '请输入用户姓名',
	style : 'margin-left: 5px;'
});

// 分页下拉列表(控制每页显示条数)
var pageSizeCombo = Ext.create('configCenter.pageSizeCombo', {
	value : 10,
	listeners : {
		select : function(comboBox) {
			pageSize = parseInt(comboBox.getValue());
			pageTool.pageSize = parseInt(comboBox.getValue());
			userStore.pageSize = parseInt(comboBox.getValue());
			userStore.load({
				params : {
					start : 0,
					limit : pageSize
				}
			});
		}
	}
// 默认每页条数
});

// 当前每页条数
var pageSize = parseInt(pageSizeCombo.getValue());
// 数据
var userStore = Ext.create('Ext.data.Store', {
	storeId : 'userStore',
	model : 'User',
	pageSize : pageSize,
	proxy : {
		type : 'ajax',
		url : 'user/all',
		method : 'POST',
		reader : {
			type : 'json',
			rootProperty : 'rows',
			totalProperty : 'results'
		}
	},
// autoLoad : true
});

var editButton = Ext.create('Ext.Action',{
	text : '编辑',
	glyph : 0xf21b,
	handler : function() {
		var row = userGrid.getView().getSelectionModel().getSelection()[0];
		Common.ajaxRequest({
			url : 'user/role/' + row.data.id,
			showMsg : false,
			callback : function(json) {
				addUser_RolePanel.getSelectionModel().deselectAll();//取消选择的复选框
				Ext.each(json.data,function(role){
					roleStore.each(function(record,index){
						if(role.roleId == record.data.roleId){
							addUser_RolePanel.getView().getSelectionModel().select(index,true);
						}
					});
				})
			}
		});
		addUserWindow.setTitle('编辑用户');
		addUserWindow.show().center();
		addUser_userPanel.getForm().load({
			url : 'user/user/' + row.data.id
		});
		passwordField.setVisible(false);
		passwordField.setDisabled(true);
		addUserTab.setActiveTab(addUser_userPanel);
	}
});
editButton.setDisabled(true);
var delButton = Ext.create('Ext.Action',{
	text : '删除',
	glyph : 0xf235
});
delButton.setDisabled(true);

// 定义工具栏
Ext.define('configCenter.user.userToolbal', {
	extend : 'Ext.toolbar.Toolbar',
	alias : 'widget.userToolbal',
	requires : [ 'configCenter.user.searchRealNameField' ],
	items : [ {
		text : '新建',
		glyph : 0xf234,
		handler : function() {
			addUserWindow.setTitle('新建');
			addUserWindow.show().center();
			passwordField.setVisible(true);
			passwordField.setDisabled(false);
			addUser_userPanel.getForm().reset();
			addUser_RolePanel.getSelectionModel().deselectAll();//取消选择的复选框
			addUserTab.setActiveTab(addUser_userPanel);//清除表单中的内容
		}
	}, '-', editButton , '-', delButton , '-', {
		xtype : 'searchRealNameField',
		store : userStore
	} ]
});

// 底部工具栏，分页工具
var pageTool = Ext.create('Ext.PagingToolbar', {
	requires : [ 'configCenter.pageSizeCombo' ],
	pageSize : pageSize,
	store : userStore,
	displayInfo : true,
	items : [ '-', '&nbsp;', pageSizeCombo ]
});

// 列表
var userCheckboxModel = Ext.create('Ext.selection.CheckboxModel',{
	singleSelect : true,
	listeners : {
		'deselect': function(model,record,index) {//取消选中时产生的事件
			console.log('deselect',index);
		},
		'select' : function(){
			editButton.setDisabled(false);
			delButton.setDisabled(false);
		}
		
	}
});
var userGrid = Ext.create('Ext.grid.Panel', {
	requires : [ 'configCenter.user.userToolbal' ],
	autoScroll : 'auto',
	region : 'center',
	loadMask : true,
	viewConfig : {},
	stripeRows : true,
	selModel : userCheckboxModel,
	dockedItems : [ {
		xtype : 'userToolbal',
		dock : 'top'
	}, {
		items : pageTool,
		// xtype : 'pageToolBar',
		dock : 'bottom'
	} ],
	defaults : {
		sortable : true,
		width : 110
	},
	columns : [
//			new Ext.grid.RowNumberer(),
			{
				xtype : 'hidden',
				fieldLabel : 'ID',
				name : 'id'
			},
			{
				text : '账号',
				dataIndex : 'account'
			},
			{
				text : '用户姓名',
				dataIndex : 'realName'
			},
			{
				text : '性别',
				dataIndex : 'sex',
				renderer : function(val) {
					for (var i = 0; i < (userModel.sex).length; i++) {
						if (userModel.sex[i].value == val) {
							return userModel.sex[i].text;
						}
					}
					return '其它';
				}
			},
			{
				text : '电子邮件',
				dataIndex : 'email',
				renderer : function(value) {
					return '<span title="点击给 ' + value
							+ ' 发邮件"><a href="mailto:' + value + '">' + value
							+ '</a></span>';
				}
			}, {
				text : '手机',
				dataIndex : 'mobile'
			}, {
				text : '办公电话',
				dataIndex : 'mobile'
			}, {
				text : '上次登录时间',
				dataIndex : 'lastLoginTime'
			}, {
				text : '上次登录IP地址',
				dataIndex : 'lastLoginTime'
			}, {
				text : '备注',
				dataIndex : 'remark'
			} ],
	store : userStore
});

// 定义显示的Panel
// var filterPanel = Ext.create('Ext.panel.Panel', {
// layout : 'border',
// boder : false,
// items: [userGrid],
//    
// });

Ext.create('Ext.container.Viewport', {
	requires : [ 'Ext.layout.container.Fit' ],
	layout : {
		type : 'fit'
	},
	items : userGrid
});
userStore.load({
	params : {
		start : 0,
		limit : pageSize
	}
});
